home *** CD-ROM | disk | FTP | other *** search
Wrap
var GoogleRedesignedUpdateManager = { googleredesignedupdate:function (method) { if (GoogleRedesignedUpdateManager.updating == true) { if (method == "automate") { //window.setTimeout(function(){GoogleRedesignedUpdateManager.googleredesignedupdate('automate')},86400000); return; } return; } else { var grprefsinstance = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch); var grautoupdateon = grprefsinstance.getBoolPref("extensions.googleredesigned.autoupdateon"); if(!grautoupdateon && method=='automate'){ return; } GoogleRedesignedUpdateManager.updating = true; var dsp = new GoogleRedesignedRDFDataSource(googleredesignedBrowserOverlay.getConfigUri()); var te = dsp.getNode("urn:googleredesigned:extension").getChildren(); while (te.hasMoreElements()) { var extensionupdatingnode = te.getNext(); } extensionupdatingnode.modifyTarget("urn:googleredesigned#updating", "false", "true"); dsp.save(); } var stylesToUpdate = []; var enumerator, progress, styleCount, style, list, strings; var numberDone = 0; function revertback() { GoogleRedesignedUpdateManager.googleredesignedupdateabortarray = []; GoogleRedesignedUpdateManager.googleredesignedupdatesuccessarray = []; GoogleRedesignedUpdateManager.googleredesignedupdatemethod = ""; GoogleRedesignedUpdateManager.updating = false; var dsp = new GoogleRedesignedRDFDataSource(googleredesignedBrowserOverlay.getConfigUri()); var te = dsp.getNode("urn:googleredesigned:extension").getChildren(); while (te.hasMoreElements()) { var extensionupdatingnode = te.getNext(); } extensionupdatingnode.modifyTarget("urn:googleredesigned#updating", "true", "false"); dsp.save(); } function init() { if (method != "automate") { if(document.getElementById("googleredesignedUpdateMeter")!=undefined) document.getElementById("googleredesignedUpdateMeter").style.display = "-moz-box"; if(document.getElementById("googleredesignedUpdateMeter-prism")!=undefined) document.getElementById("googleredesignedUpdateMeter-prism").style.display = "-moz-box"; } GoogleRedesignedUpdateManager.googleredesignedupdatemethod = ""; GoogleRedesignedUpdateManager.googleredesignedupdateabortarray = []; styleCount = GoogleRedesignedStyle.prototype.ds.getNode(GoogleRedesignedStyle.prototype.containerURI).getChildCount(); enumerator = GoogleRedesignedStyle.prototype.ds.getNode(GoogleRedesignedStyle.prototype.containerURI).getChildren(); progress = (document.getElementById("googleredesignedUpdateMeter")!=undefined) ? document.getElementById("googleredesignedUpdateMeter") : document.getElementById("googleredesignedUpdateMeter-prism"); GoogleRedesignedUpdateManager.googleredesignedupdatemethod = method; checkNext(); } function updateAll() { numberofupdates = stylesToUpdate.length; update(stylesToUpdate); stylesToUpdate = []; GoogleRedesignedStyle.prototype.ds.save(); if(document.getElementById("googleredesignedUpdateMeter")!=undefined) document.getElementById("googleredesignedUpdateMeter").style.display = "none"; if(document.getElementById("googleredesignedUpdateMeter-prism")!=undefined) document.getElementById("googleredesignedUpdateMeter-prism").style.display = "none"; var extraalertnotification = null; if (GoogleRedesignedUpdateManager.googleredesignedupdateabortarray.length > 0) { extraalertnotification = GoogleRedesignedUpdateManager.googleredesignedupdateabortarray.length > 1 ? "Updates unavailable for:" : "Update unavailable for:"; } else { GoogleRedesignedUpdateManager.googleredesignedupdateabortarray = null; } window.openDialog("chrome://googleredesigned/content/alert.xul", "alert:alert", "chrome,dialog=yes,titlebar=no,popup=yes", (numberofupdates > 1 ? "Updates" : "Update") + " saved succesfully for: ", GoogleRedesignedUpdateManager.googleredesignedupdatesuccessarray, extraalertnotification, GoogleRedesignedUpdateManager.googleredesignedupdateabortarray); if (method=='automate') {/*window.setTimeout(function(){GoogleRedesignedUpdateManager.googleredesignedupdate('automate')},86400000);*/} revertback(); } function update(styles) { for (var i = 0; i < styles.length; i++) { var originallyEnabled = styles[i].enabled; if (originallyEnabled) { styles[i].enabled = false; } styles[i].code = styles[i].updatedCode; styles[i].originalCode = styles[i].updatedCode; styles[i].customized = false; if (originallyEnabled) { styles[i].enabled = true; } } } function neverUpdate(styles) { for (var i = 0; i < styles.length; i++) { styles[i].neverUpdate = true; list.removeChild(document.getElementById(styles[i].uri)); } } function checkNext() { if (enumerator.hasMoreElements()) { style = new GoogleRedesignedStyle(enumerator.getNext()); if(!style.neverUpdate) style.checkForUpdate(updateCheckDone); else checkNext(); } else { if(document.getElementById("googleredesignedUpdateMeter")!=undefined) document.getElementById("googleredesignedUpdateMeter").style.display = "none"; if(document.getElementById("googleredesignedUpdateMeter-prism")!=undefined) document.getElementById("googleredesignedUpdateMeter-prism").style.display = "none"; if (stylesToUpdate.length > 0) { if (method == "automate") { if(document.getElementById("googleredesignedUpdateMeter")!=undefined) document.getElementById("googleredesignedUpdateMeter").style.display = "-moz-box"; if(document.getElementById("googleredesignedUpdateMeter-prism")!=undefined) document.getElementById("googleredesignedUpdateMeter-prism").style.display = "-moz-box"; window.setTimeout(function () {updateAll();}, 5000); } else { updateAll(); } } else { if(document.getElementById("googleredesignedUpdateMeter")!=undefined) document.getElementById("googleredesignedUpdateMeter").style.display = "none"; if(document.getElementById("googleredesignedUpdateMeter-prism")!=undefined) document.getElementById("googleredesignedUpdateMeter-prism").style.display = "none"; if (method == "manual") { if (GoogleRedesignedUpdateManager.googleredesignedupdateabortarray.length > 0) { window.openDialog("chrome://googleredesigned/content/alert.xul", "alert:alert", "chrome,dialog=yes,titlebar=no,popup=yes", "Could not connect to update server.", "Try again later.", null, null); revertback(); } else { window.openDialog("chrome://googleredesigned/content/alert.xul", "alert:alert", "chrome,dialog=yes,titlebar=no,popup=yes", "All styles are up-to-date", null, null, null); revertback(); } } if (method == "automate") { //window.setTimeout(function () {GoogleRedesignedUpdateManager.googleredesignedupdate("automate");}, 86400000); revertback(); } } } } function updateCheckDone(updatedCode) { if (updatedCode) { style.updatedCode = updatedCode; stylesToUpdate.push(style); } checkNext(); } function updateSelected(never) { var indices = getSelectedIndices(); var styles = []; for (var i = 0; i < indices.length; i++) { styles.push(stylesToUpdate[indices[i]]); } var stylesNotUpdated = []; for (var i = 0; i < stylesToUpdate.length; i++) { var found = false; for (var j = 0; j < indices.length; j++) { if (i == indices[j]) { found = true; break; } } if (!found) { stylesNotUpdated.push(stylesToUpdate[i]); } } if (never) { neverUpdate(styles); } else { update(styles); } stylesToUpdate = stylesNotUpdated; if (stylesToUpdate.length == 0) { document.getElementById("update-all").setAttribute("disabled", "true"); } GoogleRedesignedStyle.prototype.ds.save(); } function getSelectedIndices() { var indices = []; var rangeCount = list.parentNode.view.selection.getRangeCount(); for (var i = 0; i < rangeCount; i++) { var start = {}; var end = {}; list.parentNode.view.selection.getRangeAt(i, start, end); for (var c = start.value; c <= end.value; c++) { indices.push(c); } } return indices; } function changeSelection() { document.getElementById("update-selected").setAttribute("disabled", getSelectedIndices().length == 0 ? "true" : "false"); document.getElementById("never-update-selected").setAttribute("disabled", getSelectedIndices().length == 0 ? "true" : "false"); } init(); }, googleredesignedupdateabortarray:[], googleredesignedupdatemethod:"", googleredesignedupdatesuccessarray:[], updating:false }